import Taro, { Component, Config } from '@tarojs/taro'
import Index from './pages/index'

import './app.scss'

// 如果需要在 h5 环境中开启 React Devtools
// 取消以下注释：
// if (process.env.NODE_ENV !== 'production' && process.env.TARO_ENV === 'h5')  {
//   require('nerv-devtools')
// }

class App extends Component {

    componentDidMount () {}

    componentDidShow () {}

    componentDidHide () {}

    componentDidCatchError () {}

    /**
     * 指定config的类型声明为: Taro.Config
     *
     * 由于 typescript 对于 object 类型推导只能推出 Key 的基本类型
     * 对于像 navigationBarTextStyle: 'black' 这样的推导出的类型是 string
     * 提示和声明 navigationBarTextStyle: 'black' | 'white' 类型冲突, 需要显示声明类型
     */
    config: Config = {
        pages: [
            'pages/index/index',
            'pages/notice/index',
            'pages/me/index',
            'pages/auth/login/index'
        ],
        window: {
            backgroundTextStyle: 'light',
            navigationBarBackgroundColor: '#fff',
            navigationBarTitleText: 'WeChat',
            navigationBarTextStyle: 'black'
        },
        tabBar: {
            color: '#B4B4B4',
            selectedColor: '#663FFF',
            list: [
                {
                    pagePath: 'pages/index/index',
                    iconPath: 'assets/images/tab-icon/icon_home_menu.png',
                    selectedIconPath: 'assets/images/tab-icon/icon_home_menu_HL.png',
                    text: '首页'
                },
                {
                    pagePath: 'pages/notice/index',
                    iconPath: 'assets/images/tab-icon/icon_new_menu.png',
                    selectedIconPath: 'assets/images/tab-icon/icon_new_menu_HL.png',
                    text: '通知'
                },
                {
                    pagePath: 'pages/me/index',
                    iconPath: 'assets/images/tab-icon/icon_me_menu.png',
                    selectedIconPath: 'assets/images/tab-icon/icon_me_menu_HL.png',
                    text: '我的'
                }
            ]
        }
    }

    // 在 App 类中的 render() 函数没有实际作用
    // 请勿修改此函数
    render () {
        return (
        <Index />
        )
    }
}

Taro.render(<App />, document.getElementById('app'))
